Skip to main content

基础

[TOC]

可以在编译阶段约束操作的数据类型,并进行检查。(< 数据类型 >),只支持引用数据类型

扩展:java中的泛型是伪泛型,在存储到集合中时还是Object类型,在获取时强转为对应的泛型

泛型类

当一个类中,某个变量的数据类型不确定时,就可以定义带有泛型的类

public class ArrayList<E> {   
}

泛型方法

方法中形参类型不确定时,可以使用类名后面定义的泛型<E>,只能本方法使用

public class MyArrayList {
public <E> boolean add(E...e) {
obj[size] = e;
size++;
return true;
}
}
E...e这是可变参数,在传入参数数量未知时使用

泛型接口

public interface Lis

泛型的继承和通配符

泛型具备继承性,但是数据具备继承性

泛型的通配符:

  • ?表示不确定类型,可以进行类型的限定
    • ? extends E:表示可以传递E或者E所有的子类类型
    • ?super E:表示可以传递E或者E所有的父类类型
Ye是个类
Fu,Zi继承Ye
public static void method(ArrayList<? extends Ye> list){}

如果只是ArrayList<Ye>,则当传入Fu, Zi类型